]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
statusMenu.js: Ensure screensaver is locked before switching users
authorColin Walters <walters@verbum.org>
Tue, 5 Jul 2011 13:29:05 +0000 (09:29 -0400)
committerColin Walters <walters@verbum.org>
Wed, 13 Jul 2011 18:32:26 +0000 (14:32 -0400)
Somewhat similar to (see bug 637540), we need to lock the screensaver
*before* asking GDM to switch.

https://bugzilla.gnome.org/show_bug.cgi?id=654565

js/ui/statusMenu.js

index 7d49743aec8cf9d262e46b75e7c7da58995f4c3c..327fc4bbfc297f11d835d43efe477d2b2c9a757b 100644 (file)
@@ -301,8 +301,11 @@ StatusMenuButton.prototype = {
 
     _onLoginScreenActivate: function() {
         Main.overview.hide();
-        this._gdm.goto_login_session();
-        this._onLockScreenActivate();
+        // Ensure we only move to GDM after the screensaver has activated; in some
+        // OS configurations, the X server may block event processing on VT switch
+        this._screenSaverProxy.setActiveRemote(true, Lang.bind(this, function() {
+            this._gdm.goto_login_session();
+        }));
     },
 
     _onQuitSessionActivate: function() {
@@ -315,6 +318,7 @@ StatusMenuButton.prototype = {
 
         if (this._haveSuspend &&
             this._suspendOrPowerOffItem.state == PopupMenu.PopupAlternatingMenuItemState.DEFAULT) {
+            // Ensure we only suspend after the screensaver has activated
             this._screenSaverProxy.SetActiveRemote(true, Lang.bind(this, function() {
                 this._upClient.suspend_sync(null);
             }));